Memory Safety and Untrusted Extensions for TinyOS
نویسندگان
چکیده
Sensor network applications should be reliable. However, TinyOS, the dominant sensor net OS, lacks basic building blocks for reliable software systems: memory protection, isolation, and safe termination. These features are typically found in general-purpose operating systems but are believed to be too expensive for tiny embedded systems with a few kilobytes of RAM. We dispel this notion and show that CCured, a safe dialect of C, can be leveraged to provide memory safety for largely unmodified TinyOS applications. We build upon safety to implement two very different environments for TinyOS applications. The first, Safe TinyOS, provides a minimal kernel for safely executing trusted applications. Safe execution traps and identifies bugs that would otherwise have silently corrupted RAM. The second environment, UTOS, implements a user-kernel boundary that supports isolation and safe termination of untrusted code. Existing TinyOS components can often be ported to UTOS with little effort. To create our environments, we substantially augmented the CCured toolchain to emit code that is safe under interrupt-driven concurrency, to reduce storage requirements by compressing error messages, to refactor direct hardware access into calls to trusted helper functions, and to make safe programs more efficient using whole-program optimization. A surprising result of our work is that a safe, optimized TinyOS program can be faster than the original unsafe, unoptimized application. Memory Safety and Untrusted Extensions for TinyOS John Regehr Nathan Cooprider Will Archer Eric Eide University of Utah, School of Computing
منابع مشابه
Bug Hunting in Sensor Network Applications
Testing sensor network applications is an essential and a difficult task. Due to their distributed and faulty nature, severe resource constraints, unobservable interactions, and limited human interaction, sensor networks, make monitoring and debugging of applications strenuous and more challenging. In this paper we present KleeNet — a Klee based platform independent bug hunting tool for sensor ...
متن کاملEffective Containment of Shared-Memory Application Extensions
Users are relying increasingly on untrusted software in their daily activities such as viewing documents and images, listening to music, watching video, communicating with others, playing games, and so on. This factor has prompted research in securing untrusted software, but much of this research has been focused on standalone applications, and hence don’t address the emerging trends towards sh...
متن کاملPractical Protection of Kernel Integrity for Commodity OS from Untrusted Extensions
Kernel extensions are widely used by attackers to compromise the operating system kernel. With the presence of various untrusted extensions, it remains a challenging problem to comprehensively preserve the integrity of OS kernels in a practical and generic way. In this paper, we present HUKO, a hypervisor-based integrity protection system designed to protect commodity OS kernels from untrusted ...
متن کاملExperiences from a Decade of TinyOS Development
When first written in 2000, TinyOS’s users were a handful of academic computer science researchers. A decade later, TinyOS averages 25,000 downloads a year, is in many commercial products, and remains a platform used for a great deal of sensor network, low-power systems, and wireless research. We focus on how technical and social decisions influenced this success, sometimes in surprising ways. ...
متن کاملResource Bound Certiication
Various code certiication systems allow the certiication and static veriication of important safety properties such as memory and control-ow safety. These systems are valuable tools for verifying that untrusted and potentially malicious code is safe before execution. However, one important safety property that is not usually included is that programs adhere to speciic bounds on resource consump...
متن کامل